package com.SparkCore.RDD.Builder

import org.apache.spark.{SparkConf, SparkContext}

/**
 * 从文件中创建RDD
 */
object Spark02_RDD_Feil_Par1 {
  def main(args: Array[String]): Unit = {

    //准备环境
    val sparkConf = new SparkConf().setMaster("local[*]").setAppName("RDD") //setMaster("Local[*]") 表示默认核数
    val sc = new SparkContext(sparkConf)

    //创建RDD
    //数据分区的分配
    /**
     * 1、数据以行为单位进行读取
     * Spark读取文件采用的是Hadoop的方式读取，所以一行一行读取，和字节数没有关系
     * 2、数据读取时时以偏移量为单位，偏移量不会被重新读取
     * 3、数据分区域的偏移量范围的计算
     */

    /**
     * 1@@  => 0 1 2
     * 2@@  => 3 4 5
     * 3    => 6
     */

    /**
     * 数据分区的偏移量范围的计算
     * 0 => [0,3]
     * 1 => [3,6]
     * 2 => [6,7]
     */


    val rdd = sc.textFile("datas/1.txt", 2)
    rdd.saveAsTextFile("output")
    //关闭环境
    sc.stop()
  }
}
